import { EnumManager_blxf } from "../Manager/EnumManager";
import { PlatformManager_blxf } from "../Manager/PlatformManager";
import PublicModule_blxf from "./PublicModule";

const gameCfgInfo: object = {
    wechat_game1: {
        msg: '微信_幸福小摊贩',
        appid: 'wx5403ef468ca1e8ad',
        umnAppKey: '661497a8940d5a4c493b1f5b'
    },
    wechat_gameType4: {
        msg: '微信_80小贩',
        appid: 'wxb85b346f07ecdfcd',
        umnAppKey: '6736aabb7e5e6a4eeb96fa45'
    },
    wechat_gameType5: {
        msg: '微信_动脑我最强',
        appid: 'wx11d202ae6920d10a',
        umnAppKey: '6718b35680464b33f6e2d7e3'
    }
}

/** 八零小贩-试玩1：wx58f5fd38397cbf5a */

const {ccclass, property} = cc._decorator;

/** 游戏配置 */
@ccclass
export class ConfigModule_blxf {

    private constructor () {};

    private static _ConfigModule_blxf: ConfigModule_blxf = new ConfigModule_blxf();

    public static get instance () {
        return this._ConfigModule_blxf;
    }

    /** 游戏类型：1幸福小摊贩、2财富高手、3专属你的小镇、4:80小贩、5:动脑我最强 */
    static gameType: number = 1;
    /** 游戏简称 */
    static gameName: string = null;
    /** 语言类型：1中文简体、2中文繁体 */
    languageType: number = 1;

    /** 是否测试模式 */
    static isDebug   : boolean = false;
    /** 是否web测试模式 */
    static isWebTest : boolean = false;

    wechat_appid: string = 'wx5403ef468ca1e8ad';

    /** 昵称 */
    nickName  : string = '';
    /** 头像 */
    avatarUrl : string = '';

    /** 设计宽度 */
    gameW : number = 750;
    /** 设计高度 */
    gameH : number = 1330;
    /** 界面缩放系数 */
    scaleRatio : number = 0;
    /** 是否缩放宽 */
    isScaleWidth : boolean = false;
    /** 是否是IPAD */
    isIpad: boolean = false;

    /** 手机宽 */
    winSizeW : number;
    /** 手机高 */
    winSizeH : number;
    /** 变化高度 */
    checkH : number = 0;
    checkW : number = 0;

    /** 背景音乐固定音量 */
    bgmVolume : number = 0.8;

    /** 视频提升摊位等级 */
    static videoLvList: number[] = [ 2, 4, 6, 8, 10 ];
    /** 最大菜摊等级 */
    static maxVendorLv: number = 999;

    /** 基础销售额 */
    static baseGoldNum: number = 10;
    /** 基础升级消耗金币数 */
    static baseConsumeGoldnum: number = 100;

    /** 大关包含的小关数 */
    static basePassNum : number = 3;

    /** 检测商品数（ N：摊位数 ） */
    static checkShopNum: string = '2*N+-0';
    /** 检测商品数百分比 */
    static checkShopPercent: string = '15%';

    /** 每日金币不足视频次数 */
    static goldVideoNum: number    = 2;
    /** 观看视频获得金币数量 */
    static videoGoldNumStr: string = `800*LV`;

    // /** 额外概率 */
    // static extraRatio: number = 0.1;
    static extraRatio: number = 0;


    /** 剩余空间触发空间不足系数 */
    static spaceRatio: number = 0.2;
    
    /** 视频增益时间(+) */
    static maxBuffTime: number = 5 * 60;
    /** 视频增益次数(+) */
    static maxBuffNum : number = 30;
    /** 负增益起始大关数 */
    static negativeBigPassNum: number = 3;
    /** 负增益检测时间(-) */
    static negativeCheckTime: number = 5 * 60;
    /** 负增益检测小关数(-) */
    static negativeCheckNum: number  = 3;

    /** 离开主玩法触发生气时间 */
    static triggerAngryTime: number = 3 * 60;

    /** 鞭炮商品id */
    static diamondShopId: number = 100001;

    /** 最大摊位数 */
    static maxVendorNum: number = 11;

    /** 自动售卖最多摊位数 */
    static maxAutoVendorNum: number = 9;
    /** 自动售卖最多菜篮子数 */
    static maxAutoTargetNum: number = 3;
    /** 自动售卖菜摊最高等级 */
    static maxAutoVendorLevel: number = 50;
    /** 自动售卖菜篮最高等级 */
    static maxAutoTargetLevel: number = 30;

    /** 自动售卖时间 */
    static autoBuyTime: number        = 6;
    static autoWaitTime: number       = 2;
    /** 加速总生效时间 */
    static autoAddSpeedTime: number   = 10 * 60;
    /** 右侧箭头提示间隔时间（3min） */
    static rightTipsCfgTime: number   = 3 * 60;
    /** 左侧箭头提示间隔时间（6min） */ 
    static leftTipsCfgTime: number    = 6 * 60;
    /** 已解锁喜爱物品概率 */
    static likeShopRatio: string      = `0.6`;
    /** 已解锁其它物品概率 */
    static unlockShopRatio: string    = `0.3`;
    /** 未解锁物品概率 */
    static notUnlockShopRatio: string = `0.1`;

    /** 对联配置数列表 */
    static coupletNumList: number[] = [ 7, 7, 4, 1 ];

    /** 是否需要集齐满商品 */
    static isNeedAllShop: boolean = true;


    /** 网格行数 */
    static gridRows   : number = 11;
    /** 网格列数 */
    static gridColumns: number = 5;
    /** 纽扣消除数 */
    static checkButtonNum: number = 10;

    /** 最大关卡数 */
    static maxPassMax: number = 50;

    /** 空格系数 */
    static nullGridRatio: number = 0.15;

    /** 分享配置信息 */
    static shareCfgInfo: object = {
        cfg1 : {
            msg         : '用途：老板别走弹窗、空间不足弹窗',
            title       : '这一关我卡住了，帮帮忙',
            imageUrlId  : 'en32gNIPRh2MKY0hVhILfg==',
            imageUrl    : 'https://mmocgame.qpic.cn/wechatgame/byEu1dK6LZE221lLf0ev1sFf7cibwt5mNbynWbZGibicIx1jUcTg0wR3MRscYdP3q8E/0'
        },
        cfg2 : {
            msg         : '用途：临时摊位',
            title       : '萝卜青菜，哪个是你的菜？',
            imageUrlId  : 'oKRXQ/AXSWeuibwrB8Aadg==',
            imageUrl    : 'https://mmocgame.qpic.cn/wechatgame/0uRGACgHcl66f7LNN0icpoyia21vibItJFicMg9D8gPmQprPFx4xpy0sdticDEDqdias8H/0'
        },
        cfg3 : {
            msg         : '用途：过关弹窗',
            title       : '听说你的好友已经称霸菜市场了！',
            imageUrlId  : 'CvdFq8QZSSWDlFFL6UkL5g==',
            imageUrl    : 'https://mmocgame.qpic.cn/wechatgame/vm93x78q2tkEMMqUQvaQbkd9TTAIfnLKhfAMWibKc8wADYzibm66ktr12rEavOo1n4/0'
        }
    }

    /** APP分享图片路径 */
    static appShareImgPath    : string = 'share/shareImg';
    /** APP分享文案 */
    static appShareText       : string = '听说你的好友已经称霸菜市场了！';
    /** ios下载地址 */
    static iosDownloadUrl     : string = 'https://apps.apple.com/cn/app/id6479597913';
    /** android下载地址 */
    static androidDownloadUrl : string = 'https://l.taptap.cn/qIapkCfR?channel=rep-rep_njwrylaaej9';

    /** 获取手机尺寸 */
    initWinSize_blxf () {
        this.winSizeW = cc.winSize.width;
        this.winSizeH = cc.winSize.height;

        this.checkH = (this.winSizeH - this.gameH) / 2;
        this.checkW = (this.winSizeW - this.gameW) / 2;
        // if ( this.checkH < 0 ) this.checkH = 0;
    }

    /**
     * 设置语言类型
     * @param languageType 语言类型
     */
    setLanguage_blxf ( languageType: number ) {
        this.languageType = languageType;
    }

    /** 设置游戏简介名 */
    static setGameName_blxf () {
        switch ( this.gameType ) {
            case 1 : this.gameName = null; break;
            case 4 : this.gameName = '80xf'; break;
            case 5 : this.gameName = 'dnwzq'; break;
            default: this.gameName = null; break;
        }

        PublicModule_blxf.onCheckJenga();
    }
    
    /**
     * 设置适配数据
     * @param scaleRatio 缩放系数
     * @param isScaleWidth 是否缩放宽
     */
    setAdapterScaleData_blxf ( scaleRatio: number, isScaleWidth: boolean, isIpad: boolean ) {
        this.scaleRatio = scaleRatio;
        this.isScaleWidth = isScaleWidth;
        this.isIpad = isIpad;
    }
    
    /** 获取平台自定义名称 */
    static getPlatformName_blxf () {
        let _platformName: string;
        _platformName = PlatformManager_blxf.getPlatformType();

        if ( cc.sys.isBrowser ) _platformName = 'browser';

        return _platformName;
    }

    /** 是否是头条平台 */
    static isTtPlatform_blxf () {
        let _isTT: boolean = false;
        let _platformName = this.getPlatformName_blxf();
        let { PLATFORM_TT } = EnumManager_blxf.platformType;

        _isTT = _platformName == PLATFORM_TT;
        return _isTT;
    }

    /** 是否是APP */
    static isAppPlatform_blxf () {
        let _isApp: boolean = false;

        let _platformName = this.getPlatformName_blxf();
        let { PLATFORM_IOS, PLATFORM_ANDRIOD } = EnumManager_blxf.platformType;

        let _isIos: boolean = _platformName == PLATFORM_IOS;
        let _isAndroid: boolean = _platformName == PLATFORM_ANDRIOD;
        _isApp = _isIos || _isAndroid;

        return _isApp;
    }

    /** 是否是IOS */
    static isIosPlatform_blxf () {
        let _platformName = this.getPlatformName_blxf();
        let { PLATFORM_IOS } = EnumManager_blxf.platformType;
        let _isIos: boolean = _platformName == PLATFORM_IOS;

        return _isIos;
    }

    setUserInfo_blxf ( userInfo: any ) {
        let { nickName, avatarUrl } = userInfo;

        this.nickName = nickName;
        this.avatarUrl = avatarUrl;
    }
}
